{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fire  NoFire\r\n"
     ]
    }
   ],
   "source": [
    "! ls Datasets/scrapped/All\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import cv2\n",
    "import numpy as np\n",
    "from tqdm import tqdm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "DATADIR = 'Datasets/scrapped/All'\n",
    "CATEGORIES = ['Fire', 'NoFire']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "IMG_SIZE = 64\n",
    "def create_training_data():\n",
    "    training_data = []\n",
    "    for category in CATEGORIES:  \n",
    "\n",
    "        path = os.path.join(DATADIR,category) \n",
    "        class_num = CATEGORIES.index(category)  # get the classification  (0 or a 1). 0=C 1=O\n",
    "\n",
    "        for img in tqdm(os.listdir(path)):  # iterate over each image\n",
    "            try:\n",
    "                img_array = cv2.imread(os.path.join(path,img))  # convert to array\n",
    "                new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))  # resize to normalize data size\n",
    "                training_data.append([new_array, class_num])  # add this to our training_data\n",
    "            except Exception as e:  # in the interest in keeping the output clean...\n",
    "                pass\n",
    "              \n",
    "    return training_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1125/1125 [00:13<00:00, 82.54it/s]\n",
      "100%|██████████| 1300/1300 [00:28<00:00, 45.85it/s]\n"
     ]
    }
   ],
   "source": [
    "training_data = create_training_data()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2423\n",
      "1\n",
      "1\n",
      "1\n",
      "1\n",
      "1\n",
      "1\n",
      "1\n",
      "1\n",
      "0\n",
      "0\n"
     ]
    }
   ],
   "source": [
    "import random\n",
    "\n",
    "print(len(training_data))\n",
    "random.shuffle(training_data)\n",
    "for sample in training_data[:10]:\n",
    "    print(sample[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(64, 64, 3)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = []\n",
    "Y = []\n",
    "\n",
    "for features,label in training_data:\n",
    "    X.append(features)\n",
    "    Y.append(label)\n",
    "\n",
    "X = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 3)\n",
    "X = X/255.0\n",
    "X.shape[1:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # set up image augmentation\n",
    "# from keras.preprocessing.image import ImageDataGenerator\n",
    "\n",
    "# datagen = ImageDataGenerator(\n",
    "#     rotation_range=15,\n",
    "#     horizontal_flip=True,\n",
    "#     width_shift_range=0.1,\n",
    "#     height_shift_range=0.1\n",
    "#     #zoom_range=0.3\n",
    "#     )\n",
    "# datagen.fit(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow.keras.datasets import cifar10\n",
    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
    "from tensorflow.keras.layers import Conv2D, AveragePooling2D\n",
    "\n",
    "model = Sequential()\n",
    "\n",
    "\n",
    "model.add(Conv2D(filters=16, kernel_size=(3, 3), activation='relu', input_shape=X.shape[1:]))\n",
    "model.add(AveragePooling2D())\n",
    "model.add(Dropout(0.5))\n",
    "\n",
    "model.add(Conv2D(filters=32, kernel_size=(3, 3), activation='relu'))\n",
    "model.add(AveragePooling2D())\n",
    "model.add(Dropout(0.5))\n",
    "\n",
    "model.add(Conv2D(filters=64, kernel_size=(3, 3), activation='relu'))\n",
    "model.add(AveragePooling2D())\n",
    "model.add(Dropout(0.5))\n",
    "\n",
    "model.add(Flatten())\n",
    "\n",
    "model.add(Dense(units=256, activation='relu'))\n",
    "model.add(Dropout(0.2))\n",
    "\n",
    "model.add(Dense(units=128, activation='relu'))\n",
    "\n",
    "model.add(Dense(units=2, activation = 'softmax'))\n",
    "\n",
    "model.compile(loss='sparse_categorical_crossentropy',\n",
    "              optimizer='adam',\n",
    "              metrics=['accuracy'])\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 1696 samples, validate on 727 samples\n",
      "Epoch 1/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.5822 - acc: 0.7005 - val_loss: 0.5330 - val_acc: 0.7400\n",
      "Epoch 2/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.5092 - acc: 0.7612 - val_loss: 0.5650 - val_acc: 0.7125\n",
      "Epoch 3/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.4913 - acc: 0.7659 - val_loss: 0.4808 - val_acc: 0.7978\n",
      "Epoch 4/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.4501 - acc: 0.7989 - val_loss: 0.4579 - val_acc: 0.7964\n",
      "Epoch 5/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.4153 - acc: 0.8137 - val_loss: 0.4099 - val_acc: 0.8143\n",
      "Epoch 6/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.3929 - acc: 0.8202 - val_loss: 0.4180 - val_acc: 0.8047\n",
      "Epoch 7/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.3739 - acc: 0.8296 - val_loss: 0.3918 - val_acc: 0.8239\n",
      "Epoch 8/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.3608 - acc: 0.8337 - val_loss: 0.3773 - val_acc: 0.8267\n",
      "Epoch 9/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.3198 - acc: 0.8555 - val_loss: 0.3551 - val_acc: 0.8404\n",
      "Epoch 10/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.3259 - acc: 0.8561 - val_loss: 0.3386 - val_acc: 0.8542\n",
      "Epoch 11/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.3033 - acc: 0.8703 - val_loss: 0.3201 - val_acc: 0.8597\n",
      "Epoch 12/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.2954 - acc: 0.8756 - val_loss: 0.3085 - val_acc: 0.8666\n",
      "Epoch 13/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.2663 - acc: 0.8844 - val_loss: 0.2956 - val_acc: 0.8735\n",
      "Epoch 14/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.2693 - acc: 0.8785 - val_loss: 0.3712 - val_acc: 0.8432\n",
      "Epoch 15/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.2742 - acc: 0.8874 - val_loss: 0.3055 - val_acc: 0.8556\n",
      "Epoch 16/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.2258 - acc: 0.9092 - val_loss: 0.2868 - val_acc: 0.8817\n",
      "Epoch 17/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.2208 - acc: 0.9021 - val_loss: 0.2548 - val_acc: 0.8941\n",
      "Epoch 18/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.2083 - acc: 0.9062 - val_loss: 0.2507 - val_acc: 0.9133\n",
      "Epoch 19/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.2136 - acc: 0.9121 - val_loss: 0.2700 - val_acc: 0.8762\n",
      "Epoch 20/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.2047 - acc: 0.9169 - val_loss: 0.3012 - val_acc: 0.8611\n",
      "Epoch 21/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1713 - acc: 0.9363 - val_loss: 0.2838 - val_acc: 0.9120\n",
      "Epoch 22/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1878 - acc: 0.9257 - val_loss: 0.2754 - val_acc: 0.8886\n",
      "Epoch 23/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1559 - acc: 0.9357 - val_loss: 0.3017 - val_acc: 0.8858\n",
      "Epoch 24/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.1622 - acc: 0.9404 - val_loss: 0.3397 - val_acc: 0.8955\n",
      "Epoch 25/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1526 - acc: 0.9346 - val_loss: 0.2745 - val_acc: 0.9010\n",
      "Epoch 26/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1328 - acc: 0.9487 - val_loss: 0.2538 - val_acc: 0.9120\n",
      "Epoch 27/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1521 - acc: 0.9381 - val_loss: 0.2640 - val_acc: 0.9023\n",
      "Epoch 28/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1235 - acc: 0.9540 - val_loss: 0.2947 - val_acc: 0.9188\n",
      "Epoch 29/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1079 - acc: 0.9564 - val_loss: 0.2842 - val_acc: 0.9175\n",
      "Epoch 30/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1422 - acc: 0.9399 - val_loss: 0.2663 - val_acc: 0.9023\n",
      "Epoch 31/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.1083 - acc: 0.9593 - val_loss: 0.2965 - val_acc: 0.9078\n",
      "Epoch 32/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1207 - acc: 0.9511 - val_loss: 0.3338 - val_acc: 0.8666\n",
      "Epoch 33/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1017 - acc: 0.9570 - val_loss: 0.2600 - val_acc: 0.9188\n",
      "Epoch 34/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0935 - acc: 0.9670 - val_loss: 0.2853 - val_acc: 0.9271\n",
      "Epoch 35/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0867 - acc: 0.9676 - val_loss: 0.3384 - val_acc: 0.9175\n",
      "Epoch 36/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0873 - acc: 0.9693 - val_loss: 0.2819 - val_acc: 0.9298\n",
      "Epoch 37/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.1168 - acc: 0.9540 - val_loss: 0.2431 - val_acc: 0.9147\n",
      "Epoch 38/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0798 - acc: 0.9705 - val_loss: 0.3161 - val_acc: 0.9051\n",
      "Epoch 39/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0766 - acc: 0.9752 - val_loss: 0.3304 - val_acc: 0.9257\n",
      "Epoch 40/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0603 - acc: 0.9817 - val_loss: 0.3183 - val_acc: 0.9120\n",
      "Epoch 41/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0861 - acc: 0.9705 - val_loss: 0.3396 - val_acc: 0.9202\n",
      "Epoch 42/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0873 - acc: 0.9705 - val_loss: 0.3117 - val_acc: 0.9133\n",
      "Epoch 43/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0677 - acc: 0.9794 - val_loss: 0.2798 - val_acc: 0.9175\n",
      "Epoch 44/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0556 - acc: 0.9800 - val_loss: 0.3612 - val_acc: 0.9188\n",
      "Epoch 45/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.0654 - acc: 0.9764 - val_loss: 0.3390 - val_acc: 0.9147\n",
      "Epoch 46/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.0513 - acc: 0.9811 - val_loss: 0.3331 - val_acc: 0.9147\n",
      "Epoch 47/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.0568 - acc: 0.9811 - val_loss: 0.3554 - val_acc: 0.9243\n",
      "Epoch 48/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0543 - acc: 0.9817 - val_loss: 0.3258 - val_acc: 0.9243\n",
      "Epoch 49/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.1378 - acc: 0.9564 - val_loss: 0.3705 - val_acc: 0.8693\n",
      "Epoch 50/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.1167 - acc: 0.9570 - val_loss: 0.3245 - val_acc: 0.9161\n",
      "Epoch 51/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0597 - acc: 0.9794 - val_loss: 0.3257 - val_acc: 0.9106\n",
      "Epoch 52/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0431 - acc: 0.9829 - val_loss: 0.3558 - val_acc: 0.9147\n",
      "Epoch 53/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0444 - acc: 0.9823 - val_loss: 0.3471 - val_acc: 0.9202\n",
      "Epoch 54/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0573 - acc: 0.9794 - val_loss: 0.3939 - val_acc: 0.9147\n",
      "Epoch 55/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0740 - acc: 0.9746 - val_loss: 0.3996 - val_acc: 0.9188\n",
      "Epoch 56/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0379 - acc: 0.9870 - val_loss: 0.3645 - val_acc: 0.9133\n",
      "Epoch 57/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.0483 - acc: 0.9829 - val_loss: 0.3551 - val_acc: 0.9147\n",
      "Epoch 58/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0366 - acc: 0.9858 - val_loss: 0.3545 - val_acc: 0.9230\n",
      "Epoch 59/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0422 - acc: 0.9864 - val_loss: 0.3977 - val_acc: 0.9188\n",
      "Epoch 60/100\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0580 - acc: 0.9770 - val_loss: 0.4124 - val_acc: 0.9106\n",
      "Epoch 61/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0687 - acc: 0.9782 - val_loss: 0.3142 - val_acc: 0.9271\n",
      "Epoch 62/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0403 - acc: 0.9847 - val_loss: 0.3190 - val_acc: 0.9202\n",
      "Epoch 63/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0404 - acc: 0.9841 - val_loss: 0.3325 - val_acc: 0.9285\n",
      "Epoch 64/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0329 - acc: 0.9876 - val_loss: 0.3929 - val_acc: 0.9188\n",
      "Epoch 65/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0231 - acc: 0.9912 - val_loss: 0.4106 - val_acc: 0.9175\n",
      "Epoch 66/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0335 - acc: 0.9888 - val_loss: 0.3935 - val_acc: 0.9188\n",
      "Epoch 67/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0291 - acc: 0.9900 - val_loss: 0.4379 - val_acc: 0.9230\n",
      "Epoch 68/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0499 - acc: 0.9811 - val_loss: 0.3832 - val_acc: 0.9188\n",
      "Epoch 69/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0310 - acc: 0.9906 - val_loss: 0.3656 - val_acc: 0.9326\n",
      "Epoch 70/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0249 - acc: 0.9912 - val_loss: 0.3564 - val_acc: 0.9175\n",
      "Epoch 71/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0421 - acc: 0.9858 - val_loss: 0.3881 - val_acc: 0.9202\n",
      "Epoch 72/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0367 - acc: 0.9900 - val_loss: 0.4135 - val_acc: 0.9188\n",
      "Epoch 73/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.0488 - acc: 0.9823 - val_loss: 0.3195 - val_acc: 0.9188\n",
      "Epoch 74/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0411 - acc: 0.9858 - val_loss: 0.3368 - val_acc: 0.9257\n",
      "Epoch 75/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0292 - acc: 0.9917 - val_loss: 0.3947 - val_acc: 0.9257\n",
      "Epoch 76/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.0244 - acc: 0.9894 - val_loss: 0.4256 - val_acc: 0.9120\n",
      "Epoch 77/100\n",
      "1696/1696 [==============================] - 6s 4ms/sample - loss: 0.0299 - acc: 0.9882 - val_loss: 0.4022 - val_acc: 0.9188\n",
      "Epoch 78/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0365 - acc: 0.9847 - val_loss: 0.3936 - val_acc: 0.9161\n",
      "Epoch 79/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0268 - acc: 0.9906 - val_loss: 0.3952 - val_acc: 0.9078\n",
      "Epoch 80/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0316 - acc: 0.9888 - val_loss: 0.3634 - val_acc: 0.9147\n",
      "Epoch 81/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0379 - acc: 0.9900 - val_loss: 0.3164 - val_acc: 0.9257\n",
      "Epoch 82/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0413 - acc: 0.9858 - val_loss: 0.3424 - val_acc: 0.9257\n",
      "Epoch 83/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0336 - acc: 0.9882 - val_loss: 0.3463 - val_acc: 0.9271\n",
      "Epoch 84/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0382 - acc: 0.9900 - val_loss: 0.3652 - val_acc: 0.9202\n",
      "Epoch 85/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0338 - acc: 0.9882 - val_loss: 0.3574 - val_acc: 0.9216\n",
      "Epoch 86/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0245 - acc: 0.9935 - val_loss: 0.4102 - val_acc: 0.9216\n",
      "Epoch 87/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0328 - acc: 0.9894 - val_loss: 0.4068 - val_acc: 0.9326\n",
      "Epoch 88/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0338 - acc: 0.9876 - val_loss: 0.3870 - val_acc: 0.9243\n",
      "Epoch 89/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0243 - acc: 0.9923 - val_loss: 0.3938 - val_acc: 0.9243\n",
      "Epoch 90/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0213 - acc: 0.9929 - val_loss: 0.4541 - val_acc: 0.9230\n",
      "Epoch 91/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0272 - acc: 0.9906 - val_loss: 0.4026 - val_acc: 0.9285\n",
      "Epoch 92/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0191 - acc: 0.9917 - val_loss: 0.4408 - val_acc: 0.9257\n",
      "Epoch 93/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0375 - acc: 0.9876 - val_loss: 0.3968 - val_acc: 0.9202\n",
      "Epoch 94/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0422 - acc: 0.9858 - val_loss: 0.3609 - val_acc: 0.9188\n",
      "Epoch 95/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0315 - acc: 0.9882 - val_loss: 0.3953 - val_acc: 0.9257\n",
      "Epoch 96/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0365 - acc: 0.9882 - val_loss: 0.3923 - val_acc: 0.9188\n",
      "Epoch 97/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0349 - acc: 0.9870 - val_loss: 0.3651 - val_acc: 0.9271\n",
      "Epoch 98/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0255 - acc: 0.9929 - val_loss: 0.4050 - val_acc: 0.9243\n",
      "Epoch 99/100\n",
      "1696/1696 [==============================] - 5s 3ms/sample - loss: 0.0127 - acc: 0.9953 - val_loss: 0.4207 - val_acc: 0.9216\n",
      "Epoch 100/100\n",
      "1696/1696 [==============================] - 6s 3ms/sample - loss: 0.0313 - acc: 0.9900 - val_loss: 0.3763 - val_acc: 0.9340\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(X, Y, batch_size=32, epochs=100,validation_split=0.3)\n",
    "# model.fit_generator(datagen.flow(X, Y, batch_size=32),\n",
    "#                     epochs=100,\n",
    "#                     verbose=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.save('TrainedModels/Fire-64x64-color-v7.1-soft.h5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "plt.plot(history.history['acc'])\n",
    "plt.plot(history.history['val_acc'])\n",
    "plt.title('model accuracy')\n",
    "plt.ylabel('accuracy')\n",
    "plt.xlabel('epoch')\n",
    "plt.legend(['train', 'validation'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXd81dX5x9/nZkIW2QkkkJAwwgwQlgiigHXUrYhVW62KWq2z/andtba11qodWqut1rYq4sBiRVEQRGTvFUbCSJgZkARIQtb5/XHuN7lJbpJ7k3szn/frhTf3O8+9JufzfcZ5HqW1RhAEQRAAbB09AEEQBKHzIKIgCIIg1CKiIAiCINQioiAIgiDUIqIgCIIg1CKiIAiCINQioiAILqKU+qdS6ikXjz2olJrZ1usIQnsjoiAIgiDUIqIgCIIg1CKiIHQr7G6bHyqltimlziql/qGUilVKfaKUOq2UWqKUCnc4/kql1E6lVJFSarlSKs1h3xil1Cb7ee8AgQ3u9U2l1Bb7uauUUqNaOea7lFJZSqmTSqmFSqm+9u1KKfW8UipPKVWilNqulBph33eZUmqXfWxHlFI/aNUXJggNEFEQuiPXAbOAwcAVwCfAj4BozO/8AwBKqcHA28BD9n2LgI+UUv5KKX/gQ+DfQATwrv262M8dA7wG3A1EAn8DFiqlAtwZqFLqIuC3wGwgHjgEzLPvvhiYZv8cYfZjCu37/gHcrbUOAUYAX7hzX0FoChEFoTvyZ631Ca31EeArYK3WerPWuhxYAIyxH3cj8LHW+nOtdSXwLNALOA+YBPgBL2itK7XW7wHrHe4xF/ib1nqt1rpaa/0GcM5+njvcDLymtd6ktT4HPAFMVkolAZVACDAUUFrrTK31Mft5lcAwpVSo1vqU1nqTm/cVBKeIKAjdkRMOP5c5eR9s/7kv5skcAK11DZAL9LPvO6LrV4w85PDzAOBRu+uoSClVBCTaz3OHhmM4g7EG+mmtvwD+ArwI5CmlXlFKhdoPvQ64DDiklPpSKTXZzfsKglNEFISezFHM5A4YHz5mYj8CHAP62bdZ9Hf4ORf4tda6j8O/3lrrt9s4hiCMO+oIgNb6T1rrccAwjBvph/bt67XWVwExGDfXfDfvKwhOEVEQejLzgcuVUjOUUn7AoxgX0CpgNVAFPKCU8lNKXQtMcDj3VeAepdREe0A4SCl1uVIqxM0xvA3crpRKt8cjfoNxdx1USo23X98POAuUAzX2mMfNSqkwu9urBKhpw/cgCLWIKAg9Fq31HuAW4M9AASYofYXWukJrXQFcC9wGnMTEHz5wOHcDcBfGvXMKyLIf6+4YlgA/Bd7HWCcpwBz77lCM+JzCuJgKgd/b990KHFRKlQD3YGITgtBmlDTZEQRBECzEUhAEQRBqEVEQBEEQahFREARBEGoRURAEQRBq8e3oAbhLVFSUTkpK6uhhCIIgdCk2btxYoLWObuk4r4qCUuoS4I+AD/B3rfXTTo6ZDfwC0MBWrfW3mrtmUlISGzZs8MJoBUEQui9KqUMtH+VFUVBK+WCW588CDgPrlVILtda7HI4ZhKn1MkVrfUopFeOt8QiCIAgt482YwgQgS2u9374QaB5wVYNj7gJe1FqfAtBa53lxPIIgCEILeFMU+mHqw1gctm9zZDAwWCn1tVJqjd3d1Ail1Fyl1Aal1Ib8/HwvDVcQBEHo6ECzLzAImA4kACuUUiO11kWOB2mtXwFeAcjIyGi0BLuyspLDhw9TXl7u/RH3AAIDA0lISMDPz6+jhyIIQjvjTVE4gqk4aZFg3+bIYUzxr0rggFJqL0Yk1uMGhw8fJiQkhKSkJOoXtRTcRWtNYWEhhw8fJjk5uaOHIwhCO+NN99F6YJBSKtnexWoOsLDBMR9irASUUlEYd9J+d29UXl5OZGSkCIIHUEoRGRkpVpcg9FC8Jgpa6yrgfmAxkAnM11rvVEo9qZS60n7YYqBQKbULWAb8UGtd6PyKzSOC4DnkuxSEnotXYwpa60WYvreO237m8LMGHrH/8ypnz1VRUl5JXGigTHqCIAhN0GPKXJRWVJN/+hzVNZ4vFV5UVMRLL73k9nmXXXYZRUVFLR8oCILQTvQYUfD3NR+1otrzDaqaEoWqqqpmz1u0aBF9+vTx+HgEQRBaS0enpLYb/j7GZVRZVQP+nr32448/TnZ2Nunp6fj5+REYGEh4eDi7d+9m7969XH311eTm5lJeXs6DDz7I3LlzgbqSHWfOnOHSSy/l/PPPZ9WqVfTr14///ve/9OrVy7MDFQRBaIFuJwq//Ggnu46WNNqugdJzVfj72vDzcc9AGtY3lJ9fMbzJ/U8//TQ7duxgy5YtLF++nMsvv5wdO3bUpnS+9tprREREUFZWxvjx47nuuuuIjIysd419+/bx9ttv8+qrrzJ79mzef/99brnlFrfGKQiC0Fa6nSg0hbL/pz26j06YMKFejv+f/vQnFixYAEBubi779u1rJArJycmkp6cDMG7cOA4ePOj9gQqCIDSg24lCc0/0e4+fxt/XRlJEAJQVQe9I8EImUlBQUO3Py5cvZ8mSJaxevZrevXszffp0p2sAAgICan/28fGhrKzM4+MSBEFoiR4TaAbw87VRWV0DZwugOBeqz3nkuiEhIZw+fdrpvuLiYsLDw+nduze7d+9mzZo1HrmnIAiCN+h2lkJz+PsoSitqoNwec6iuBN/ANl83MjKSKVOmMGLECHr16kVsbGztvksuuYSXX36ZtLQ0hgwZwqRJk9p8P0EQBG+hdHs42T1IRkaGbthkJzMzk7S0tBbPzTtdTn5xKcNsh0yMoc8A6B3hnYF2cVz9TgVB6BoopTZqrTNaOq5HuY/8fWwEU0ZtFKG6siOHIwiC0OnoUe4jPx8bwaoMjc3El2tEFARBEBzpUaLg72PDjzIqfIMIoBKqKzp6SIIgCJ2KHuU+8tUV+Ksqym1BYPMT95EgCEIDepQoqHMm6+gMvcBHREEQBKEhPUoUOHeaCvwoq/E1olBT2T5LnAVBELoIPUcUdA1UnOGcT5BZwOZj7z9c03wlU28QHBwMwNGjR7n++uudHjN9+nQapt425IUXXqC0tLT2vZTiFgShrfQcUag4C7qGar9gKqtrqLHZRaEDg819+/blvffea/X5DUVBSnELgtBWepYooND+IQBUWYlXHogrPP7447z44ou173/xi1/w1FNPMWPGDMaOHcvIkSP573//2+i8gwcPMmLECADKysqYM2cOaWlpXHPNNfVqH917771kZGQwfPhwfv7znwOmyN7Ro0e58MILufDCCwFTirugoACA5557jhEjRjBixAheeOGF2vulpaVx1113MXz4cC6++GKpsSQIQj26X0rqJ4/D8e1OdmjQmlANAytr8PFTUFUKvgFga6HBQtxIuPTpJnffeOONPPTQQ9x3330AzJ8/n8WLF/PAAw8QGhpKQUEBkyZN4sorr2yyFehf//pXevfuTWZmJtu2bWPs2LG1+379618TERFBdXU1M2bMYNu2bTzwwAM899xzLFu2jKioqHrX2rhxI6+//jpr165Fa83EiRO54IILCA8P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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.history['loss'])\n",
    "plt.plot(history.history['val_loss'])\n",
    "plt.title('model loss')\n",
    "plt.ylabel('loss')\n",
    "plt.xlabel('epoch')\n",
    "plt.legend(['train', 'validation'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /home/padfoot7/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/ops/resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From /home/padfoot7/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/keras/layers/core.py:143: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow.keras.utils import plot_model\n",
    "model = tf.keras.models.load_model('TrainedModels/Fire-64x64-color-v7-soft.h5')\n",
    "\n",
    "# model.fit_generator(datagen.flow(X, Y, batch_size=32),\n",
    "#                     epochs=100,\n",
    "#                   verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# plot_model(model, to_file='model_small.svg', show_layer_names=False, show_shapes=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "conv2d_3 (Conv2D)            (None, 62, 62, 16)        448       \n",
      "_________________________________________________________________\n",
      "average_pooling2d_3 (Average (None, 31, 31, 16)        0         \n",
      "_________________________________________________________________\n",
      "dropout_5 (Dropout)          (None, 31, 31, 16)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_4 (Conv2D)            (None, 29, 29, 32)        4640      \n",
      "_________________________________________________________________\n",
      "average_pooling2d_4 (Average (None, 14, 14, 32)        0         \n",
      "_________________________________________________________________\n",
      "dropout_6 (Dropout)          (None, 14, 14, 32)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_5 (Conv2D)            (None, 12, 12, 64)        18496     \n",
      "_________________________________________________________________\n",
      "average_pooling2d_5 (Average (None, 6, 6, 64)          0         \n",
      "_________________________________________________________________\n",
      "dropout_7 (Dropout)          (None, 6, 6, 64)          0         \n",
      "_________________________________________________________________\n",
      "flatten_1 (Flatten)          (None, 2304)              0         \n",
      "_________________________________________________________________\n",
      "dense_3 (Dense)              (None, 256)               590080    \n",
      "_________________________________________________________________\n",
      "dropout_8 (Dropout)          (None, 256)               0         \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 128)               32896     \n",
      "_________________________________________________________________\n",
      "dense_5 (Dense)              (None, 2)                 258       \n",
      "=================================================================\n",
      "Total params: 646,818\n",
      "Trainable params: 646,818\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "cv",
   "language": "python",
   "name": "cv"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
